﻿#region Copyright

// // The contents of this file are subject to the Mozilla Public License
// // Version 1.1 (the "License"); you may not use this file except in compliance
// // with the License. You may obtain a copy of the License at
// //   
// // http://www.mozilla.org/MPL/
// //   
// // Software distributed under the License is distributed on an "AS IS"
// // basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
// // License for the specific language governing rights and limitations under 
// // the License.
// //   
// // The Initial Developer of the Original Code is Robert Smyth.
// // Portions created by Robert Smyth are Copyright (C) 2008-2013.
// //   
// // All Rights Reserved.

#endregion

using System;
using NLog;
using NoeticTools.NWorkflow.DotNetInterop;
using NoeticTools.NWorkflow.Exceptions;
using NoeticTools.NWorkflow.ProgressMonitoring;


namespace NoeticTools.NWorkflow.Steps
{
    internal class NullStep : IStep
    {
        public string Name
        {
            get { return string.Empty; }
        }

        public IProgress Progress
        {
            get { return new StepProgressMonitor(new ProgressInfo(), new NullProgressListener(), this, false, LogManager.GetLogger("NWorkflow.Step")); }
        }

        public Action OnProgressAction { get { return null; } }
        public double OnProgressPercentage { get { return 0.01; } }

        public void Enter()
        {
        }

        public void Leave()
        {
        }

        public void OnEventFired(object eventValue)
        {
        }

        public void SetResult(object result)
        {
            throw new WorkflowStateException();
        }

        public void Abort()
        {
        }

        public void StartTimer(TimeSpan timeLimit)
        {
        }
    }
}